package com.hellenic.dao;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.hibernate.SessionFactory;

public class HibernateInit implements ServletContextListener {
    private HibernateUtil hibernateUtil;

    @Override
    public void contextInitialized( ServletContextEvent event ) {
        System.out.println( "Message : Initialisation du listener HibernateInit" );

        // Récupération du ServletContext lors du chargement de l'application
        ServletContext servletContext = event.getServletContext();

        // instanciation d'un objet hibernate util
        hibernateUtil = new HibernateUtil();

        try {
            // recuperation de la SessionFactory Hibernat
            SessionFactory sf = hibernateUtil.getSessionF();

            // Enregistrement dans un attribut ayant pour portée toute
            // l'application
            servletContext.setAttribute( "sessionF", sf );

            System.out.println( "Message : attribution SessionFactory Hibernate " );
        } catch ( Exception ex ) {
            System.out.println( "Erreur : attribution SessionFactory Hibernat" + ex );
        }
    }

    @Override
    public void contextDestroyed( ServletContextEvent event ) {
        System.out.println( "Message : Listener Destruction HibernateInit" );
    }
}
